Asynchronous Transfer Mode ("ATM") is a networking technique designed to support high speed digital voice, data and video communications. It is generally believed that within the next several years, most of the voice, data, and video traffic generated throughout the world will be transmitted by ATM technology. Broadband packet networks based on ATM technology are enabling the integration of traffic having a wide range of characteristics within a single communications network.
These networks are typically comprised of switches, which are coupled to each other, and to communicating devices, by links. Each link is characterized by a bandwidth or link capacity. Information input from the communication devices to the network may be of any form but is often formatted into fixed-length packets, called "cells" in ATM terminology. When information is to be exchanged between two communications devices, a path is established within the network connecting the switches (hereafter called the origination and destination switches) with which those devices are associated. Routing of cells is thus accomplished through the switches over the links set up between the source and destination switches.
In these networks, a given communications stream between a specified origin and destination is carried over a set of physical paths (e.g., paths comprising the origin and destination switches, possibly one or more intermediate switches, and links connecting the included switches) within the network. The set of origin-to-destination paths, wherein each path is characterized by a predetermined bandwidth, are generally referred to as virtual paths. It will also be the case that several such virtual paths may co-exist along all or some part of a physical path within a network. Although typically a number of different physical paths could be chosen initially to constitute such a virtual path, once the virtual path is established, the chosen physical paths generally remain established for the given communications session.
The ATM networking protocol is capable of handling multiple classes of traffic (i.e., the communication streams) ranging from real-time video to best-effort traffic requiring no Quality of Service guarantees. An industry group, the ATM Forum, has defined a family of service categories to address these classes of traffic, specifically, Constant Bit Rate ("CBR") service, and Variable Bit Rate ("VBR") service (which includes Unspecified Bit Rate ("UBR") service and Available Bit Rate ("ABR") service). However, several problems arise in the switching and transmitting of CBR traffic, namely, cell loss and jitter. Note that many types of VBR service, e.g., UBR and ABR, can be multiplexed to produce CBR streams with a certain quality of service for maximally utilizing the link bandwidth. As such, the above noted problems are equally applicable.
Cell loss occurs when the receiving switch cannot process the cells at the rate of delivery. One prior art method for handling this problem is to provide sufficient memory buffers at strategic locations within the switching fabric to accommodate the incoming cells. A drawback of this prior art methodology is that if the number of cells exceed the memory buffer capacity, then the cell or cells are discarded, thus either forcing the receiving switch to request retransmission of that cell(s) or causing degradation in the communication. Discarding cells in this manner is an ineffective use of network resources and decreases the overall throughput of the network. Some prior art methods use potentially large memory buffers to try to prevent cell loss.
Jitter occurs when related cells arriving through different paths experience different delays. That is, temporal delays resulting from contention among the cells and the random arrival of the cells from different switches, gives rise to variations in cell spacing. This is particularly disruptive to real time communications (e.g., audio communications, because it can cause audible pops and clicks). Some prior art methods for reducing jitter provide large buildout delays at the destination switch. A disadvantage of this method is that the amount of buffering required to accomplish this may be quite large and buffer management could become quite complex.
Accordingly, there is a need to provide a simple and effective switching fabric which provides jitterless and lossless switching in packet-based networks.